#! /usr/bin/env python

PACKAGE='seabee3_driver'
import roslib; roslib.load_manifest(PACKAGE)

from math import pi

from driver_base.msg import SensorLevels
from dynamic_reconfigure.parameter_generator import *

gen = ParameterGenerator()
#Name            Type   Reconfiguration level             Description         Default Min Max
gen.add( "port",                      str_t,    SensorLevels.RECONFIGURE_RUNNING, "power board port name",   "/dev/seabee/powerboard" )
gen.add( "motor_speed_floor",         int_t,    SensorLevels.RECONFIGURE_RUNNING, "minimum non-zero motor speed", 15,  0,    100 )
gen.add( "fwd_right_thruster_dir",    int_t,    SensorLevels.RECONFIGURE_RUNNING, "direction of this thruster",   -1,   -1,   1 )
gen.add( "fwd_left_thruster_dir",     int_t,    SensorLevels.RECONFIGURE_RUNNING, "direction of this thruster",   -1,   -1,   1 )
gen.add( "depth_front_thruster_dir",  int_t,    SensorLevels.RECONFIGURE_RUNNING, "direction of this thruster",   -1,   -1,   1 )
gen.add( "depth_back_thruster_dir",   int_t,    SensorLevels.RECONFIGURE_RUNNING, "direction of this thruster",   1,   -1,   1 )
gen.add( "strafe_top_thruster_dir",   int_t,    SensorLevels.RECONFIGURE_RUNNING, "direction of this thruster",   -1,   -1,   1 )
gen.add( "strafe_bottom_thruster_dir",int_t,    SensorLevels.RECONFIGURE_RUNNING, "direction of this thruster",   -1,   -1,   1 )
gen.add( "shooter1_trigger_time",     int_t,    SensorLevels.RECONFIGURE_RUNNING, "shooter1 pulse duration (ms)", 100, 0,    1000 )
gen.add( "shooter1_trigger_value",    int_t,    SensorLevels.RECONFIGURE_RUNNING, "shooter1 pulse amplitude",     75,  -100, 100 )
gen.add( "shooter2_trigger_time",     int_t,    SensorLevels.RECONFIGURE_RUNNING, "shooter2 pulse duration (ms)", 100, 0,    1000 )
gen.add( "shooter2_trigger_value",    int_t,    SensorLevels.RECONFIGURE_RUNNING, "shooter2 pulse amplitude",     -75, -100, 100 )
gen.add( "dropper1_trigger_time",     int_t,    SensorLevels.RECONFIGURE_RUNNING, "dropper1 pulse duration (ms)", 125, 0,    1000 )
gen.add( "dropper1_trigger_value",    int_t,    SensorLevels.RECONFIGURE_RUNNING, "dropper1 pulse amplitude",     75,  -100, 100 )
gen.add( "dropper2_trigger_time",     int_t,    SensorLevels.RECONFIGURE_RUNNING, "dropper2 pulse duration (ms)", 125, 0,    1000 )
gen.add( "dropper2_trigger_value",    int_t,    SensorLevels.RECONFIGURE_RUNNING, "dropper2 pulse amplitude",     55,  -100, 100 )
gen.add( "simulate",                  bool_t,   SensorLevels.RECONFIGURE_RUNNING, "enable simulated values", False )
gen.add( "is_killed",                 bool_t,   SensorLevels.RECONFIGURE_RUNNING, "kill switch",             True )
gen.add( "override_kill_switch",      bool_t,   SensorLevels.RECONFIGURE_RUNNING, "override kill switch",    False )
gen.add( "internal_pressure",         int_t,    SensorLevels.RECONFIGURE_RUNNING, "internal pressure",       3000, 0, 5000 )
gen.add( "external_pressure",         int_t,    SensorLevels.RECONFIGURE_RUNNING, "external pressure",       890,  0, 5000 )
gen.add( "surface_pressure",          int_t,    SensorLevels.RECONFIGURE_RUNNING, "surface pressure",        890,  0, 5000 )
gen.add( "montalbos_per_meter",       double_t, SensorLevels.RECONFIGURE_RUNNING, "montalbos / meter",       37.5, 0, 100 )

exit(gen.generate(PACKAGE, "dynamic_reconfigure_node", "FakeSeabee"))
